<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // js中的类和对象；

        // 一、js中的对象
        // 1.如何创建；
        // 字面量创建
        // let obj1  ={name:"张三"};
        // // 内置构造函数
        // let obj2 = new Object();
        // obj2.name = "李四";

        // // 可以在对象的原型上创建属性和方法；
        // var obj3 =  Object.create({name:"王五"});
        // console.log(obj2);
        // console.log(obj3);


        // 二、js中的类；可以生产多个对象；
        // 1.工厂模式；（早期的类）
        // 多个人对象 ：小明 小张 小李---->共性特征抽象成类---》 姓名  年龄 走；

        // 人类工厂；抽象 类 
        // 复用性强；
        // function Person(name,age){
        //     let obj = {}; //添加原材料
        //     obj.name = name;  //加工原材料
        //     obj.age = age;  //加工原材料
        //     obj.walk = function(){
        //         console.log("走");
        //     }
        //     return obj;  //出厂
        // }

        // let xiaoming = Person("小明",21);   //具象
        // xiaoming.walk();
        // let xiaozhang = Person("小张",22);
        // xiaozhang.walk();
        // let xiaoli = Person("小李",20) ;
        // xiaoli.walk();
        // console.log(xiaoming,xiaozhang,xiaoli)

        // 需要一个狗类  名字 性别  叫 
        // 生产2个小狗 ---》1.大黄 公 叫一次  2. 小黑  公  每隔一秒叫一次；

        function Dog(name,gender){
            let obj = {};
            obj.name = name;
            obj.gender = gender;
            obj.jiao = function(){
                // if(name=="大黄"){
                //     console.log("叫");
                // }
                // if(name=="小黑"){
                //     setInterval(() => {
                //         console.log("叫");
                //     }, 1000);
                // }

                console.log("叫");
               
            }
            return obj;
        }

        let dahaung = Dog("大黄","公");
        dahaung.jiao();
        let xiaohei = Dog("小黑","公");
        setInterval(() => {
            xiaohei.jiao();
        }, 1000);
        let xiaoqiang = Dog("小强","公");
        setInterval(() => {
            xiaoqiang.jiao();
        }, 2000);





    </script>
</body>
</html>